﻿@namespace AntBlazor.Internal
@inherits DatePickerPanelBase
@using System.Globalization;

@{
    var calendar = CultureInfo.InvariantCulture.Calendar;

    int startYear = PickerValue.Year / 100 * 100 - 10;
    DateTime startDate = new DateTime(startYear, 1, 1);

    int yearIndex = 0;
    const int MAX_ROW = 4;
    const int MAX_COL = 3;
    const int FIRST_YEAR_INDEX = 0;
    const int LAST_YEAR_INDEX = MAX_ROW * MAX_COL;
}
<DatePickerTemplate PickerIndex="@PickerIndex"
                       MaxRow="MAX_ROW"
                       MaxCol="MAX_COL"
                       ViewStartDate="startDate"
                       IsInView="date => yearIndex != FIRST_YEAR_INDEX && yearIndex != LAST_YEAR_INDEX"
                       IsToday="date => DateHelper.IsSameYear(date, DatePicker.CurrentDate)"
                       IsSelected="date => DateHelper.IsSameYear(date, Value)"
                       OnValueSelect="date => OnSelectYear(date)"
                       GetNextColValue="date => date.AddYears(10)">
    <RenderPickerHeader>
        <DatePickerHeader SuperChangeDateInterval="100"
                             PickerIndex="@PickerIndex" 
                             ShowPreChange="@false"
                             ShowNextChange="@false"
                             ShowSuperPreChange="@(!(DatePicker.IsRange && PickerIndex == 1))"
                             ShowSuperNextChange="@(!(DatePicker.IsRange && PickerIndex == 0))" />
    </RenderPickerHeader>
    <RenderColValue Context="currentColDate">
        @{yearIndex++;}
        @(currentColDate.Year)-@(currentColDate.Year + 9)
    </RenderColValue>
</DatePickerTemplate>
